In [1]:
import pandas as pd
import numpy as np
In [54]:
# 데이터프레임 로딩
df = pd.read_csv('example_dataframe.csv')
In [5]:
# 데이터프레임 확인
df.tail()
Out[5]:
In [6]:
# 특정열의 마지막 부분만 확인
df["grade"].tail()
Out[6]:
In [7]:
# 데이터프레임 행 번호 지정하여 확인
df.ix[1000:1005]
Out[7]:
In [8]:
# 'loan_status' 변수의 원소별 개수 확인
pd.value_counts(df["loan_status"])
Out[8]:
In [10]:
# 'grade' 변수의 원소 종류 확인
np.unique(df['grade'])
Out[10]:
In [11]:
# unique는 중복값을 무시하고 유일한 값만을 반환
a = [1, 1, 1, 2, 3, 4, 4]
np.unique(a)
Out[11]:
In [12]:
# 지정 행이나 열의 합(axis = 0: 열의 합, 1: 행의 합, default: axis = 0)
df.ix[0:5].sum(axis=1)
Out[12]:
In [13]:
# sum() method에 인자가 없으므로 default값인 axis = 0 적용
df["loan_amnt"].sum()
Out[13]:
In [14]:
# 변수별 합계 행 생성 및 확인
df.ix["Total"] = df.sum()
df.tail()
Out[14]:
In [17]:
# 조건부 원소(성분, 값) 변경
# 비어있는 열 'test' 생성 테스트
df.ix[df.grade == 1.0, 'test'] = "A"
df.tail()
Out[17]:
In [19]:
# 변수 내 비어있는 셀 개수 확인
df.isnull().sum()
Out[19]:
In [20]:
# 변수별 성분속성 확인
df.dtypes
Out[20]:
자주 등장하는 types
ex) 숫자나 문자로만 인코딩된 변수가 object 타입이라면 noise가 섞여있을 가능성 높음.
details: https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
In [22]:
# 'grade' 변수를 'loan_status' 변수의 값에 따라 성분 개수 세기
df.grade.groupby(df.loan_status).value_counts()
Out[22]:
In [33]:
# 'loan_amnt' 변수에 기술통계 실행
df["loan_amnt"].describe()
Out[33]:
In [62]:
import matplotlib as mpl # 기본 matplotlib 라이브러리
import matplotlib.pylab as plt # pyplot과 다르게 계산식이 포함된 수식 및 변수 표현에 유리
import seaborn as sns # matplotlib을 override하는 시각화 디자인 향상 툴
sns.set(palette="husl", font_scale=2) # 색상 및 글자크기 설정
In [63]:
plt.figure(figsize=(5, 3)) # plot 크기 설정
plt.hist(df["loan_amnt"], bins=10) # 'loan_amnt' 변수에 대한 히스토그램, 구간 = 10
plt.title("Histogram of Loan Amount") # 히스토그램 제목 설정
plt.show() # 히스토그램 출력